# Python字符串排版：rjust方法的神奇右对齐

# [钛妹]: 基础不牢谈何AI？今天钛妹又学习了Python的rjust方法，欢迎大神们指正错误！
# [钛哥]: 没问题，让我们一起看看如何优雅地在左边加空格或其他字符，让文本整体“靠右站队”。
txt = "banana"

# [钛妹]: 我想让“banana”对齐到20个字符长，该怎么做？
# [钛哥]: 很简单，使用rjust(20)，默认为空格填充，看代码演示。
x = txt.rjust(20)
print("示例1 - 默认空格填充:")
print(repr(x), "is my favorite fruit.")

# [钛妹]: 好像前面多了不少空格，那空格有点不显眼，如果想要用别的字符呢？
# [钛哥]: rjust的第二个参数可以自定义填充字符。比如我想用“O”。
x_char = txt.rjust(20, "O")
print("示例2 - 用'O'填充:")
print(repr(x_char))

# [钛妹]: 好耶！那这个20字符长度要是比原字符串短一点，会发生什么呢？
# [钛哥]: 当你指定的长度小于或等于原字符串长度时，就不会有任何填充，字符串保持原状。
short_result = txt.rjust(3)  # 比原长度短
print("示例3 - 指定长度小于原字符串长度:")
print(repr(short_result))

# [钛妹]: 也就是说只有指定长度大于原字符串长度时，rjust才会在左边补齐对吧？
# [钛哥]: Bingo，正是如此。要注意如果填充字符不小心写多了字符，就会抛出错误，比如想用两个字符来填就不行。

# [钛妹]: 我再想问一个问题，如果我想让它在某些场景下做一个表格对齐呢？能结合打印多行吗？
# [钛哥]: 当然啦，比方说我有好几个水果，想把它们都在相同宽度上右对齐，可以这么做：

fruits = ["banana", "apple", "mango", "watermelon", "pear"]

print("示例4 - 列表批量右对齐(宽度10):")
for f in fruits:
    print(repr(f.rjust(10)), "<-对齐")

# [钛妹]: 这样就很直观了，像是在一张表里有了对齐列。那我们给它换个填充字符？
# [钛哥]: 没问题，看下面这个例子，用“*”替换默认空格。

print("示例5 - 列表批量用'*'填充:")
for f in fruits:
    print(repr(f.rjust(10, "*")))

# [钛妹]: 好耶，这样很有气势，看得出空格的位置！那我们再来简单总结一下吧？
# [钛哥]: 好啊，总结要点如下：
#         1. rjust(长度, 填充字符)可将字符串右对齐；
#         2. 若长度不足则会在左边填充字符，默认填充空格；
#         3. 第二个参数可传任意单个字符，若省略则为空格；
#         4. 若指定长度小于或等于原字符串长度，不会有任何变化；
#         5. 可用于制作美观的文本对齐或表格布局。

# [钛妹]: 学完这个，感觉输出格式更漂亮了呢！
# [钛哥]: 没错，rjust也是一个简单却不容忽视的排版利器，下次试试它跟ljust、center一起联合使用，你会发现更多好玩之处。
print("好啦，这期内容到此结束，你是不是感觉又进步了一点点？点赞关注不迷路！")